/**
 * 
 */
package ipms.appbase;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.InetAddress;
import java.util.Properties;
/**
 * @author SPDjnh
 * 提供一些常用的基本方法
 */
public class ClsPublic {
	
	/**
	 *  获取系统属性，如程序运行目录等
	 * @param sKey 关键字，如：
	 * 	user.dir=D:\Eclipse_Work\JNH
	 *	user.home=C:\Documents and Settings\spdjnh
	 *	user.name=SPDjnh
	 *	file.separator=\
	 * @return 返回上述等号后面的内容，如果找不到则返回空字符串""
	 */
	public static String getSysProp(String sKey) {
		Properties prop = new Properties(System.getProperties());
		return prop.getProperty(sKey, "");
	}
	
	/**
	 * 获取系统配置xml文件，生成Properties对象
	 * @param xml文件路径
	 * @return Properties对象
	 * @throws Exception
	 */
	public static Properties getPropXml(String sFile) throws Exception {
		File file=new File(sFile);                    
		InputStream in=null;       
		Properties prop = new Properties();
		in=new FileInputStream(file);                  
        prop.loadFromXML(in);  
        
        in.close();
		
        return prop;
	}
	
	/**
	 * 将Properties对象存为xml文件
	 * @param Prop Properties对象
	 * @param sFile xml文件路径
	 * @param Comments xml文件的注释信息
	 * @throws Exception
	 */
	public static void setPropXml(Properties Prop,String sFile, String Comments) throws Exception {
		Prop.storeToXML(new FileOutputStream(sFile), Comments, "UTF-8");
	}
	
	/**
	 * 获取本机一个IP地址
	 * @return 默认127.0.0.1
	 */
	public static  String getIP() {
		String sIp="127.0.0.1";
		try
		{
			InetAddress[] adr=InetAddress.getAllByName(InetAddress.getLocalHost().getHostName());
			if(adr.length>0)sIp=adr[adr.length-1].getHostAddress();
		}
		catch(Exception ex){
			System.out.println("获取本机IP出错：" + ex.getMessage());
		}
		
		return sIp;
	}
	
	/**
	 * 获取本机所有IP地址
	 * @return 获取不到则返回长度为0的字符串数组
	 */
	public static String[] getIPs() {
		try
		{
			InetAddress[] adr=InetAddress.getAllByName(InetAddress.getLocalHost().getHostName());
			String[] sa=new String[adr.length];
			int i=0;
			for(InetAddress ina :adr)
			{
				sa[i]=ina.getHostAddress();
				i++;
			}
			
			return sa;
		}
		catch(Exception ex)
		{
			System.out.println("获取本机IP出错：" + ex.getMessage());
			return new String[0];
		}
	}
	
	/**
	 * 获取本机机器名
	 * @return 获取不到则返回空字符串""
	 */
	public static String getHostName() {
		try {
			return InetAddress.getLocalHost().getHostName();
		} catch (Exception ex) {
			System.out.println("获取本机机器名出错：" + ex.getMessage());
			return "";
		}
	}
	
	
    /**
     * 判断一个字符串是否全是数字
     * 
     * @param s
     * @return
     */
    public static boolean isNumber(String s)
    {
        if (s == null || s.length() == 0)
            return false;

        for (int i = 0; i < s.length(); i++)
        {
            if (s.charAt(i) < '0' | s.charAt(i) > '9')
                return false;
        }
        return true;
    }

    public static boolean isArrEquals(byte[] o1,byte[] o2) {
    	if(o1.length!=o2.length) {
    		return false;
    	}
    	else {
    		for(int i=0;i<o1.length;i++){
    			if(o1[i]!=o2[i])return false;
    		}
    	}
    	return true;
    }
	
	//-----------------------------end ClsPublic-----------------------------------------
}
